133 research outputs found

    Constraint Programming viewed as Rule-based Programming

    Full text link
    We study here a natural situation when constraint programming can be entirely reduced to rule-based programming. To this end we explain first how one can compute on constraint satisfaction problems using rules represented by simple first-order formulas. Then we consider constraint satisfaction problems that are based on predefined, explicitly given constraints. To solve them we first derive rules from these explicitly given constraints and limit the computation process to a repeated application of these rules, combined with labeling.We consider here two types of rules. The first type, that we call equality rules, leads to a new notion of local consistency, called {\em rule consistency} that turns out to be weaker than arc consistency for constraints of arbitrary arity (called hyper-arc consistency in \cite{MS98b}). For Boolean constraints rule consistency coincides with the closure under the well-known propagation rules for Boolean constraints. The second type of rules, that we call membership rules, yields a rule-based characterization of arc consistency. To show feasibility of this rule-based approach to constraint programming we show how both types of rules can be automatically generated, as {\tt CHR} rules of \cite{fruhwirth-constraint-95}. This yields an implementation of this approach to programming by means of constraint logic programming. We illustrate the usefulness of this approach to constraint programming by discussing various examples, including Boolean constraints, two typical examples of many valued logics, constraints dealing with Waltz's language for describing polyhedral scenes, and Allen's qualitative approach to temporal logic.Comment: 39 pages. To appear in Theory and Practice of Logic Programming Journa

    Set Constraint Model and Automated Encoding into SAT: Application to the Social Golfer Problem

    Get PDF
    On the one hand, Constraint Satisfaction Problems allow one to declaratively model problems. On the other hand, propositional satisfiability problem (SAT) solvers can handle huge SAT instances. We thus present a technique to declaratively model set constraint problems and to encode them automatically into SAT instances. We apply our technique to the Social Golfer Problem and we also use it to break symmetries of the problem. Our technique is simpler, more declarative, and less error-prone than direct and improved hand modeling. The SAT instances that we automatically generate contain less clauses than improved hand-written instances such as in [20], and with unit propagation they also contain less variables. Moreover, they are well-suited for SAT solvers and they are solved faster as shown when solving difficult instances of the Social Golfer Problem.Comment: Submitted to Annals of Operations researc

    Contraintes sur des flux appliquées a la vérification de programmes audio

    Get PDF
    National audienceLa programmation par contraintes s'attaque en gé-néraì a desprobì emes statiques, sans notion de temps. Cependant, les méthodes de réduction de domaines pourraient par exemplê etre utiles dans desprobì emes portant sur des flux. C'est le cas de la vérification de programmes temps-réel, avec des variables dont les valeurs peuvent changer a chaque pas de temps. Dans cet article, nous nous intéressons a la vérification de domaines de variables (flux) dans le cadre d'un langage de diagrammes de blocs. Nous proposons une méthode de réduction de domaines de ces flux, pour encadrer finement les valeurs prises au cours du temps. En particulier, nous proposons un nouvel algorithme pour calculer un point fixe dans le cas des boucles temporelles. Nous présentons ensuite une application au langage FAUST, un langage fonctionnel temps réel pour le traitement audio et nous testons notre approche sur différents programmes FAUST standards. Abstract Constraint programming usually deals with static problems. However, domain reduction method could be useful in stream-based problems. This is the case in formal verification of real time programs for which variables can be assigned different values at every single time. In this paper, we focus on domain checking of stream variables in the context of block diagram languages. We propose a reduction algorithm for streams in order to tightly reduce their domains all over the time. Particularly , we propose a new technique to compute fix points of temporal loops. Finally, we apply our method to the FAUST language, which is a real time language for processing and generating audio streams. We also test some standards FAUST programs

    A Constraint-based Approach to Web Services Provisioning

    Get PDF
    In this paper we consider the provisioning problem of Web services. Our framework is based on the existence of an abstract composition, i.e., the way some services of different types can be combined together in order to achieve a given task. Our approach consists in instantiating this abstract representation of a composite Web service by selecting the most appropriate concrete Web services. This instantiation is based on constraint programming techniques which allows us to match the Web services according to a given request. Our proposal performs this instantiation in a distributed manner, i.e., the solvers for each service type are solving some constraints at one level, and they are forwarding the rest of the request (modified by the local solution) to the next services. When a service cannot provision part of the composition, a distributed backtrack mechanism enables to change previous solutions (i.e., provisions). A major interest of our approach is to preserve privacy: solutions are not sent to the whole composition, services know only the services to which they are connected, and parts of the request that are already solved are removed from the next requests. We introduce a specific data structure, namely Message Treatment Structure, for modeling the problem. We show the interest of this data structure to express the general principles of our framework and the related algorithms

    Programación con restricciones dinámica

    Get PDF
    Este trabajo presenta algoritmos de resolución de Problemas de Satisfacción de Restricciones, capaces de medir el desempeño de su proceso a través de indicadores relevantes, posibilitando su auto-ajuste. Las posibilidades de adaptación tienen relación con cambiar la Estrategia de Enumeración en uso al detectarse un mal rendimiento. El propósito es encontrar soluciones rápidamente para diferentes tipos de problemas, solucionando una de las limitantes en torno a las Estrategias de Enumeración: “para un problema dado, se tiene una estrategia particular que funciona bien, pero limitada en la resolución eficiente de otros problemas”.La propuesta descrita se inspira en enfoques adaptativos existentes, pero que han sido diseñados con otra orientación, como el caso de la Satisfacción de Restricciones Adaptativas, donde dada una secuencia de algoritmos a utilizar, los malos son detectados y reemplazados por el próximo candidato. Sin embargo, en este trabajo no se pretende cambiar un algoritmo completo, sino para un mismo algoritmo de resolución modificar la estrategia que lo guía en base a la observación del conjunto de indicadores, obtenidos del análisis del mismo proceso de búsqueda que está desempeñando.This paper presents algorithms for solving Constraint Satisfaction Problems (CSPs) capable of measure the performance of their process through relevant indicators to enable adaptations (self-adjust). The adaptation options are related to the change of Enumeration Strategy, used when bad performance is detected. Done in this way, to find quickly solutions to different problems, solving one of the limitations on the Enumeration Strategy: “for a given problem, there is a particular strategy that works very well, but limited in the efficient resolution of other problems.” The proposal outlined is based on existing approaches, that have been designed with other orientation, such as Adaptive Constraint Satisfaction (ACS), where given a sequence of algorithms to use, bad ones are detected and replaced by the next candidate. However, this paper is not intended to change a complete algorithm, but for the same algorithm, modify the strategy that guides it based on the observation of the set of indicators obtained from the analysis of the search process that is playing

    Un langage orienté parallèle pour modéliser des solveurs de contraintes

    Get PDF
    National audienceCet article présente Parallel-Oriented Solver Language (POSL, prononcé "puzzle") : un système pour construire des méta-heuristiques interconnectées tra-vaillant en parallèle. Le but de ce travail est d'obtenir un système pour facilement construire des solveurs et réduire l'effort de leur développement en proposant un mécanisme de réutilisation de code entre les différents solveurs. La nouveauté de cette approche porte sur le fait que l'on voit un solveur comme un ensemble de composants spécifiques, écris dans un langage orienté parallèle basé sur des opérateurs. Un avantage de POSL est la possibilité de parta-ger non seulement des informations mais aussi des comportements, permettant ainsi de modifier à chaud les solveurs. POSL permets aux composants d'un sol-veur d'être transmis et exécutés par d'autres solveurs. Il propose également une couche supplémentaire per-mettant de définir dynamiquement des connexions entre solveurs. L'implémentation de POSL restant un travail en cours, cet article se concentre uniquement sur ses concepts

    Implementing Non-Linear Constraints with Cooperative Solvers

    Get PDF
    We investigate the use of cooperation between solvers in the scheme of constraint logic programming languages over the domain of non-linear polynomial constraints. Instead of using a general and often inefficient decision procedure we propose a new approach for handling these constraints by cooperating specialised solvers. Our approach requires the design of a client/server architecture to enable communication between the various components. The main modules are a linear solver, a non-linear solver, a constraint manager, a communication protocol component and an answer processor module. This work is motivated by the need for a declarative system for robot motion planning and geometric problem solving. We have implemented a prototype called \groak %({\bf \sf C\raisebox{.2ex}o}nstraint {\bf \sf S}ystem {\bf \sf %A}r{\bf \sf \raisebox{.2ex}c}hitecture) (\textbf{\textsf C}\raisebox{.2ex}{\textbf{\textsfo}}nstraint \textbf{\textsfS}ystem \textbf{\textsfA}r\raisebox{.2ex}{\textbf{\textsfc}}hit- ecture) to validate our approach using cooperating solvers for non-linear constraints over the real numbers. Our language is illustrated by an example that also shows the advantages of cooperation

    Robust solutions for a robotic manipulator optimization problem

    Get PDF
    International audienceIn robotics, pose errors are known as positional and rota-tional errors of a given mechanical system. Those errors are commonly produced by the so-called joint clearances, which are the play between pairing elements. Predicting pose errors can be done via the formulation of two optimization models holding continuous domains, which belong to the NP-Hard class of problems. In this paper, we focus on the use of constraint programming in order to provide rigorous and reliable solution to this problem

    A Parallel-Oriented Language for Modeling Constraint-Based Solvers

    Get PDF
    International audienceThis paper presents the Parallel-Oriented Solver Language (POSL, pronounced " puzzle "): a new framework to build interconnected meta-heuristic based solvers working in parallel. The goal of this work is to obtain a framework to easily build solvers and reduce the developing effort, by providing a mechanism for reusing code from other solvers. The novelty of this approach lies in looking at solver as a set of components with specific goals, written in a parallel-oriented language based on operators. An interesting advantage of POSL is the possibility to share not only information, but also behaviors, allowing solvers modifications. POSL allows solver's components to be transferred and executed by other solvers. It provides an additional layer to dynamically define the connectivity between the solvers. The implementation of POSL remains a work in progress, therefore this paper will focus on POSL concepts only
    corecore